package com.example.ResumeWorkPlatform.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

/**
 * @ClassName: CheckUtils
 * @Description: 校验的工具类
 * @Author luoqilin
 * @DateTime 2020-02-04 11:34:48
 */
public class CheckUtils {

	/**
	 * @param arr(JSONArray) 数据需要存在（key，parentId）
	 * @return List To Tree
	 */
	public static JSONArray listToTree(JSONArray arr) {
		JSONArray return_data = new JSONArray();
		// 将数组转为Object的形式，key为数组中的id
		int arrCount = arr.size();
		JSONObject hash = new JSONObject();
		for (int i = 0; i < arrCount; i++) {
			JSONObject json = (JSONObject) arr.get(i);
			hash.put(json.getString("key"), json);
		}
		// 遍历结果集
		for (int i = 0; i < arrCount; i++) {
			// 取出单条数据
			JSONObject aVal = new JSONObject();
			aVal = arr.getJSONObject(i);
			// 取出单条数据中的parentId的值
			JSONObject parentVal = new JSONObject();
			parentVal = hash.getJSONObject(aVal.getString("parentId").toString());
			// 如果记录的parentId存在，则说明它有父节点，将她添加到孩子节点的集合中
			if (parentVal != null) {
				// 检查是否有children属性
				if (parentVal.get("children") != null) {
					JSONArray ch = new JSONArray();
					ch = (JSONArray) parentVal.get("children");
					ch.add(aVal);
					parentVal.put("children", ch);
				} else {
					JSONArray ch = new JSONArray();
					ch.add(aVal);
					parentVal.put("children", ch);
				}
			} else {
				return_data.add(aVal);
			}
		}
		return return_data;
	}

}

